#include<iostream>
#include<vector>
#include<list>
#include<queue>
#include"queue.h"
#include"stcak.h"
#include"priority.h"
using namespace std;

void stack_test()
{
	shagua::stack<int, vector<int>> st;
	st.push(1);
	st.push(2);
	st.push(3);
	st.push(4);
	while (!st.empty())
	{
		int tmp = st.top();
		cout << tmp << " ";
		st.pop();
	}
}

void queue_test()
{
	shagua::queue<int, list<int>> que;
	que.push(1);
	que.push(2);
	que.push(3);
	que.push(4);
	que.push(5);
	que.push(6);

	while (!que.empty())
	{
		cout << que.front() << " ";
		que.pop();
	}

}

void priority_queue_test()
{
	shagua::priority_queue<int,vector<int>> pq;
	pq.push(1);
	pq.push(5);
	pq.push(3);
	pq.push(7);
	pq.push(9);
	pq.push(0);

	while (!pq.empty())
	{
		cout << pq.top() << " ";
		pq.pop();
	}
}
int main()
{
	cout << "stack_test: ";
	stack_test();
	cout << endl;
	cout << "queue_test: ";
    queue_test();
	cout << endl;
	cout << "priority_queue_test: ";
	priority_queue_test();

	return 0;
}